from scipy.stats import *


def calculate_correlation(x, y, corr_func=pearsonr, *args, **kwargs):
    """
        计算x和y的相关系数及p值
        参数:
            x, y (array-like): 输入数据
            corr_func (function): 相关性计算函数（默认使用Pearson）
            *args, **kwargs: 传递给统计函数的额外参数（如nan_policy）
        返回:
            tuple: (相关系数, p值)
    """
    result = corr_func(x, y, *args, **kwargs)

    # 统一处理返回值（兼容不同统计方法）
    if isinstance(result, tuple):
        # SciPy方法（如pearsonr/spearmanr）返回元组 (corr_coef, p_value)
        return result  # 保留4位小数
    else:
        # 其他可能返回对象的方法（按需扩展）
        return result.statistic, result.pvalue

